/**
 * Copyright (c) 2015-2018,Retire 吴益峰 (372310383@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.jplus.admin.service.impl;

import com.google.inject.Singleton;
import com.jfinal.plugin.activerecord.Page;
import io.jboot.aop.annotation.Bean;
import io.jboot.core.rpc.annotation.JbootrpcService;
import io.jboot.db.model.Column;
import io.jboot.service.JbootServiceBase;
import io.jplus.admin.model.OperationLog;
import io.jplus.admin.service.OperationLogService;

import java.util.ArrayList;
import java.util.List;

@JbootrpcService
@Singleton
@Bean
public class OperationLogServiceImpl extends JbootServiceBase<OperationLog> implements OperationLogService {

    @Override
    public Page<OperationLog> paginateByColumns(int page, int size, List<Column> columns, String orderBy) {
        return DAO.paginateByColumns(page, size, columns, orderBy);
    }

    @Override
    public boolean deleteAll() {
        List<OperationLog> logList = DAO.findAll();
        List<Integer> delList = new ArrayList<>(logList.size());
        for (OperationLog log : logList) {
            delList.add(log.getId());
        }
        return DAO.deleteById(logList);
    }
}
